package com.net.lnk.rpc.http.serialize;

import com.net.lnk.rpc.http.exception.RpcException;

public interface RpcFormater {

	/**
	 * 格式化服务调用方需要调用的接口名，接口方法，参数
	 * 
	 * @param interfaceClass
	 * @param method
	 * @param paramster
	 * @return
	 */
	String formatRequest(Class<?> interfaceClass, String method, Object[] paramster);

	/**
	 * 格式化服务提供方返回结果
	 * 
	 * @param response
	 * @return
	 */
	String formateResponse(Object response);
	
	/**
	 * 服务提供方将request字符串解析成request对象
	 * 
	 * @param request
	 * @return
	 */
	RpcRequest parseRequest(String request) throws RpcException;

	/**
	 * 服务调用方将response字符串解析成对象
	 * 
	 * @param response
	 * @return
	 */
	<T> T parseResponse(String response);

}
